using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

using Koossery.MVCwin.Actions.itf;
using Koossery.MVCwin.Views.itf;

namespace Koossery.MVCwin.Controller.itf
{
    /// <author>Mohamadou Yacoubou</author>
	/// <summary>
	/// Controller interface.
	/// </summary>
	public interface IController
	{
		#region Methods

		/// <summary>
		/// Default method for actions; all actions provide the Execute() method
		/// </summary>
		/// <returns></returns>
		IActionResult Execute();

		/// <summary>
		/// Check if a given action should be executed asynchronously
		/// </summary>
		/// <param name="actionName">The action's name</param>
		/// <returns>true if the action is asynchronous, false either</returns>
		bool IsAnAsynchronousAction(string actionName);

		#endregion Methods
	}
}